package com.linpq.road.service;

import java.sql.SQLException;
import java.util.List;

import com.linpq.common.core.domain.AjaxResult;
import com.linpq.common.core.service.CrudService;
        import com.linpq.common.utils.DateUtils;
import com.linpq.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.linpq.road.mapper.RdRoadSectionMapper;
import com.linpq.road.domain.RdRoadSection;
import com.linpq.common.core.text.Convert;
import com.linpq.common.core.service.BaseService;
/**
 * 路段Service业务层处理
 *
 * @author wunh
 * @date 2021-07-29
 */
@Service
public class RdRoadSectionService  extends CrudService<RdRoadSectionMapper, RdRoadSection> {


    @Autowired
    RdRoadSectionMapper rdRoadSectionMapper;

    /**
     * 查询路段
     *
     * @param id 路段ID
     * @return 路段
     */

    public RdRoadSection selectRdRoadSectionById(String id) {
        return dao.get(id);
    }

    /**
     * 查询路段列表，及其所属高速，用于级联下拉框
     */
    public List<RdRoadSection> findRoadSectionList(RdRoadSection rdRoadSection) {
        return  dao.selectRdRoadSection(rdRoadSection);
    }
    /**
     * 查询路段列表
     *
     * @param rdRoadSection 路段
     * @return 路段
     */

    public List<RdRoadSection> selectRdRoadSectionList(RdRoadSection rdRoadSection) {
        return dao.findList(rdRoadSection);
    }

    /**
     * 新增路段
     *
     * @param rdRoadSection 路段
     * @return 结果
     */

    public int insertRdRoadSection(RdRoadSection rdRoadSection) {
        rdRoadSection.setCreateTime(DateUtils.getNowDate());
        return super.save(rdRoadSection);
    }

    /**
     * 修改路段
     *
     * @param rdRoadSection 路段
     * @return 结果
     */

    public int updateRdRoadSection(RdRoadSection rdRoadSection) {
                rdRoadSection.setUpdateTime(DateUtils.getNowDate());
        return super.save(rdRoadSection);
    }

    /**
     * 删除路段对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */

    public int deleteRdRoadSectionByIds(String ids) {
        return dao.deleteRdRoadSectionByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除路段信息
     *
     * @param id 路段ID
     * @return 结果
     */
    public int deleteRdRoadSectionById(String id) {
        return dao.delete(id);
    }

    /**
     * 根据id获取简略的路桩信息
     * @param id
     * @return
     */
    public RdRoadSection selectRdRoadSectionAllById(String id) {
        return rdRoadSectionMapper.selectRdRoadSectionAllById(id);
    }

    /**
     * 根据id修改当前路桩状态
     * @param id
     * @return
     */
    public AjaxResult modifyRoadSectionState(String id) throws SQLException {
        if (!StringUtils.isNull(id)&&!"".equals(id)) {
            String[] split = id.split(",");
            for (int i = 0; i < split.length; i++) {
                RdRoadSection rdRoadSection = new RdRoadSection();
                rdRoadSection.setId(split[i]);
                rdRoadSection.setLocked("1");
                int update = dao.update(rdRoadSection);
                if (update==0){
                    throw new SQLException();
                }
            }

        }

        return AjaxResult.success();
    }
}
